/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.sdw2.vista;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.biblioteca8a.bl.LibroblLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.PrestamoblLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.UsuariosblLocal;
import mx.itschapala.dsw2.biblioteca8a.modelo.Libro;
import mx.itschapala.dsw2.biblioteca8a.modelo.Prestamo;
import mx.itschapala.dsw2.biblioteca8a.modelo.Usuario;

/**
 *
 * @author Maricela
 */
@ManagedBean
@SessionScoped
public class PrestamoBean {
    //---------- llamadas------------
    @EJB
    private LibroblLocal librobl;
    @EJB
    private UsuariosblLocal usuariobl;
    @EJB
    private PrestamoblLocal prestamobl;
    
    
     //---------- Variables---------------
    private List<Prestamo> lista;
    private List<Usuario> listaUsuario;
    private List<Libro> listaLibro;
    private Prestamo loan;
    private int idusuarioSeleccionado;
    private String codigoLibro;
    private String accion;
//---------- Constructor------------
    public PrestamoBean() {
        loan = new Prestamo ();
        listaLibro = new ArrayList<Libro> ();
    }
    //---------- Get y set------------

    public List<Prestamo> getLista() {
        lista = prestamobl.getAll();
        return lista;
    }

    public Prestamo getLoan() {
        return loan;
    }

    public void setLoan(Prestamo loan) {
        this.loan = loan;
    }

    public List<Usuario> getListaUsuario() {
        listaUsuario = usuariobl.getAll();
        return listaUsuario;
    }

    public String getCodigoLibro() {
        return codigoLibro;
    }

    public void setCodigoLibro(String codigoLibro) {
        this.codigoLibro = codigoLibro;
    }

    public List<Libro> getListaLibro() {
        
        return listaLibro;
    }

    public int getIdusuarioSeleccionado() {
        return idusuarioSeleccionado;
    }

    public void setIdusuarioSeleccionado(int idusuarioSeleccionado) {
        this.idusuarioSeleccionado = idusuarioSeleccionado;
    }
    
 //---------- Acciones----------------
    public String procesarAccion (){
    prestamobl.lendBooks(loan.getIdusuario(), listaLibro);
    accion = "";
    return "Prestamo";
    }
    
//---------- Listeners---------------
 public void prepararNuevo (ActionEvent evt){
    loan= new Prestamo ();
    listaLibro = new ArrayList<Libro> ();
    accion="Nuevo";
    }
    public void prepararEditar (ActionEvent evt){
        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        System.out.println(index);
        loan = lista.get(index);
        accion = "Editar";
    }
    
    public void prepararEliminar (ActionEvent evt){
        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        System.out.println(index);
        loan = lista.get(index);
        accion = "Eliminar";
    }  
    public void agregarLibro (ActionEvent evt){
        Libro l = librobl.findByClaveFromLend(codigoLibro); 
        if (l!=null){
        listaLibro.add(l);
        }
    }
    public String preparaUsuario (){
        loan.setIdusuario(usuariobl.findById(idusuarioSeleccionado));
        return "PrestamoConfirmar";
    }
     public void Eliminar (ActionEvent evt){
        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        System.out.println(index);
        listaLibro.remove(index);
    }  
}
